package mainprogram;

import java.io.IOException;
import java.util.HashMap;

import classifieurs.Binomiale_3pol;
import classifieurs.Classification;
import classifieurs.ClassificationBinomiale;
import classifieurs.ClassificationIrrelevantBinomiale;


import extraction.Categorie;
import extraction.Extraction;

/**
 * Cette classe contient le main permettant de lancer notre programme.
 * @author ejouini
 *
 */
public class Main {


	

	public static void main(String[] args) {
		Statistiques stats = new Statistiques();
		Extraction extra = new Extraction();
		try {
			String fichier_test = args[0];
			String fichier_sortie = args[1];
			if (args.length > 2) {
				stats.analyseFichier("data/train.txt");
				extra.mots_significatifs = stats.getMotsMoinsSignificatifs();
			}
			HashMap<String, Categorie> stat = extra.analyseFichier(fichier_test);
			HashMap<String, Categorie> statParClasse = extra.analyseFichier("data/trainMelange.txt");
			statParClasse.putAll(stat);
			
			Classification cl = new ClassificationIrrelevantBinomiale(statParClasse); 
			((ClassificationIrrelevantBinomiale) cl).modeleBinomial(); 
			((ClassificationIrrelevantBinomiale) cl).decision();
			cl = new Binomiale_3pol(statParClasse);
			((Binomiale_3pol) cl).modeleBinomial();
			((Binomiale_3pol) cl).decision(fichier_sortie);
		

			//stats.analyseFichier("./test.txt");
			//stats.getStatsParClasses();
			//m.getStatistiques();
			//stats.getStatTotales();
			//System.out.println(m.statsParClasses.get("positive").getMotsOcc());
			
			//m.statsParClasses.get("positive").getVingtMotsPlusFrequents();
			/*System.out.println(m.statsParClasses.get("positive").longueurMoyenneTweet());
			System.out.println(m.statsParClasses.get("negative").longueurMoyenneTweet());
			System.out.println(m.statsParClasses.get("neutral").longueurMoyenneTweet());
			System.out.println(m.statsParClasses.get("irrelevant").longueurMoyenneTweet());
			//System.out.println(m.statsParClasses.get("positive").getMotsOcc());*/
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


